package gang.org.springframework.framework.metadata;

import java.lang.annotation.Annotation;
/**
 * 声明在实际中指定，可以参考该接口的实现类
 * @author ChenGang 【注解】
 * @since 5.2
 * @param <C> 上下文类型
 * @param <R> 结果类型
 * */
@FunctionalInterface
public interface GangAnnotationsProcessor<C,R>
{
    default R doWithAggregate(C context, int aggregateIndex)
    {
        return null;
    }

    R doWithAnnotations(C context, int aggregateIndex, Object source, Annotation[] annotations);

    default R finish(R result){
        return result;
    }
}
